package com.dgz.csmall.passport.pojo.param;

import lombok.Data;

import javax.validation.constraints.*;
import java.io.Serializable;

/**
 * @Author duguozheng
 * @Date 2023/05/18  16:46
 * @Description 添加管理员专用参数封装类
 * @Version 1.0
 */
@Data
public class AdminAddNewParam implements Serializable {

    @NotEmpty(message = "添加管理员失败，请填写用户名！")
    @Pattern(regexp = "^[a-zA-Z][a-zA-Z0-9_-]{3,15}$", message = "添加管理员失败，用户名必须是4~16个由字母、数字、下划线、减号组成的字符，且第1个字符必须是字母！")
    private String username;            //用户名

    @NotEmpty(message = "添加管理员失败，请填写密码！")
    @Pattern(regexp = "^.{4,16}$", message = "添加管理员失败，密码必须是4~16字符！")
    private String password;            //密码（原文）

    private String nickname;            //昵称

    private String avatar;              //头像URL

    private String phone;               //手机号码

    private String email;               //电子邮箱

    private String description;         //描述

    @NotNull(message = "添加管理员失败，请选择管理员的启用状态！")
    @Min(value = 0, message = "添加管理员失败，启用状态必须是0或1！")
    @Max(value = 1, message = "添加管理员失败，启用状态必须是0或1！")
    private Integer enable;             //是否启用

    @NotNull(message = "添加管理员失败，请至少选择1种角色！")
    @Size(min = 1, message = "添加管理员失败，请至少选择1种角色！")
    private Long[] roleIds;             //管理员的角色ID数组（一个管理员可能有多个roleId）
}
